package com.glsc.ngateway.common.xir.domain;

import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Data
@Entity
@Table(name = "XIR_TRD.TTRD_SET_INSTRUCTION_CASH")
public class TtrdSetInstructionCash implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 资金结算指令序号
     */
    @Id
    @Column(name = "INST_CASH_ID", nullable = false)
    private String instCashId;

    /**
     * 主结算指令序号
     */
    @Column(name = "INST_ID", nullable = false)
    private String instId;

    /**
     * 资金结算指令合并序号
     */
    @Column(name = "P_INST_CASH_ID", nullable = false)
    private String pInstCashId;

    /**
     * 业务类别 收资金,付资金
     */
    @Column(name = "BIZTYPE", nullable = false)
    private String biztype;

    /**
     * 本方计算变动数量
     */
    @Column(name = "CHGAMT_SELF", nullable = false)
    private String chgamtSelf;

    /**
     * 对方计算变动数量
     */
    @Column(name = "CHGAMT_CP", nullable = false)
    private String chgamtCp;

    /**
     * 实际确认变动数量
     */
    @Column(name = "CHGAMOUNT", nullable = false)
    private String chgamount;

    /**
     * 变动数量正负标记
     */
    @Column(name = "CHGAMOUNT_IO", nullable = false)
    private String chgamountIo;

    /**
     * 收付状态 0-待确认 1-确认
     */
    @Column(name = "STATE", nullable = false)
    private String state;

    /**
     * 状态修改者
     */
    @Column(name = "OPERATOR")
    private String operator;

    /**
     * 对方帐户
     */
    @Column(name = "PARTY_ACC_NAME")
    private String partyAccName;

    /**
     * 对手开户行
     */
    @Column(name = "PARTY_BANK_ACC_NAME")
    private String partyBankAccName;

    /**
     * 对手银行账号
     */
    @Column(name = "PARTY_BANK_ACC_CODE")
    private String partyBankAccCode;

    /**
     * 对手开户行号
     */
    @Column(name = "PARTY_BANK_CODE")
    private String partyBankCode;

    /**
     * 对手中债登托管账号
     */
    @Column(name = "PARTY_ZZDACCCODE")
    private String partyZzdacccode;

    /**
     * 外部划款序号
     */
    @Column(name = "EXT_SERIALNO")
    private String extSerialno;

    /**
     * 外部凭证号
     */
    @Column(name = "EXT_VOU_CODE")
    private String extVouCode;

    /**
     * 外部确认数据包
     */
    @Column(name = "EXT_PKG_DATA")
    private String extPkgData;

    /**
     * 有效日期
     */
    @Column(name = "BEG_DATE", nullable = false)
    private String begDate;

    /**
     * 失效日期
     */
    @Column(name = "END_DATE", nullable = false)
    private String endDate;

    /**
     * 备注
     */
    @Column(name = "MEMO")
    private String memo;

    /**
     * 创建时间
     */
    @Column(name = "CREATE_TIME")
    private Date createTime;

    /**
     * 0-现金流未确定，1-现金流已确定
     */
    @Column(name = "IS_CASH_FIXED", nullable = false)
    private String cashFixed;

    /**
     * 最后修改人
     */
    @Column(name = "UPDATE_USER")
    private String updateUser;

    /**
     * 一级资金账户
     */
    @Column(name = "CASH_EXT_ACCID")
    private String cashExtAccid;

    /**
     * 二级资金账户
     */
    @Column(name = "CASH_ACCID")
    private String cashAccid;

    /**
     * 含手续费最终实际变动数量(银行间资金指令：CHGAMOUNT都等于CHGAMOUNT_ALL (即：手续费为零)；交易所资金指令：CHGAMOUNT可能与CHGAMOUNT_ALL不相等。)
     */
    @Column(name = "CHGAMOUNT_ALL")
    private String chgamountAll;

    /**
     * 复核人(WEB)
     */
    @Column(name = "ACCOUNT_USER")
    private String accountUser;

    /**
     * 复核时间(WEB)
     */
    @Column(name = "ACCOUNT_TIME")
    private String accountTime;

    /**
     * 本方开户行号(WEB)
     */
    @Column(name = "BANK_CODE")
    private String bankCode;

    /**
     * 本方银行账号(WEB)
     */
    @Column(name = "BANK_ACC_CODE")
    private String bankAccCode;

    /**
     * 本方开户行(WEB)
     */
    @Column(name = "BANK_ACC_NAME")
    private String bankAccName;

    /**
     * 本方户名(WEB)
     */
    @Column(name = "ACC_NAME")
    private String accName;

    /**
     * 转账方式(WEB)
     */
    @Column(name = "TRANSFERTYPE")
    private String transfertype;

    /**
     * 资金划拨单号(WEB)
     */
    @Column(name = "INST_CASH_BIZ_ID")
    private String instCashBizId;

    /**
     * 结算对手编号(用于地方债承销缴款拆分支付给不同对手)
     */
    @Column(name = "PARTYID")
    private String partyid;

    /**
     * 结算对手名称(用于地方债承销缴款拆分支付给不同对手)
     */
    @Column(name = "PARTYNAME")
    private String partyname;

    /**
     * 结算对手简称(用于地方债承销缴款拆分支付给不同对手)
     */
    @Column(name = "PARTY_SHORTNAME")
    private String partyShortname;

    /**
     * 保证金保管地(CL00：中央结算公司 CL01：外汇交易中心CL02：其他)
     */
    @Column(name = "RESERVE_CASH_LOCATION")
    private String reserveCashLocation;

    /**
     * 经办人()
     */
    @Column(name = "OPERATOR_USER")
    private String operatorUser;

    /**
     * 经办时间()
     */
    @Column(name = "OPERATOR_TIME")
    private String operatorTime;

    /**
     * 执行人()
     */
    @Column(name = "EXE_USER")
    private String exeUser;

    /**
     * 执行时间()
     */
    @Column(name = "EXE_TIME")
    private String exeTime;

    /**
     * 收付款完成时间()
     */
    @Column(name = "PAY_FINISH_TIME")
    private String payFinishTime;

    /**
     * 款项用途(临时平安使用)
     */
    @Column(name = "MONEYUSAGE")
    private String moneyusage;

    /**
     * 币种
     */
    @Column(name = "CURRENCY")
    private String currency;

    /**
     * 结算币种
     */
    @Column(name = "NOMINAL_CURRENCY")
    private String nominalCurrency;

    /**
     * 汇率
     */
    @Column(name = "EXCHANGE_RATE")
    private String exchangeRate;

    /**
     * 轧差交易编号
     */
    @Column(name = "GC_SYSORDID")
    private String gcSysordid;

    /**
     * 合并指令号理财产品合并专用
     */
    @Column(name = "CASHID_MERGE_WMS")
    private String cashidMergeWms;

    /**
     * 根网调账成功状态(中泰) 0-未发送 1-成功
     */
    @Column(name = "ACCOUNT_ADJUST_STATUS")
    private String accountAdjustStatus;

    /**
     * 划款执行状态 0-正常执行 1-划款终止
     */
    @Column(name = "PROCESS_EXECUTE_STATUS")
    private String processExecuteStatus;

    /**
     * 付款其他账号
     */
    @Column(name = "PAY_OTHER_ACCCODE")
    private String payOtherAcccode;

    /**
     * 收款其他账号
     */
    @Column(name = "REC_OTHER_ACCCODE")
    private String recOtherAcccode;

    /**
     * 中泰证券办结状态
     */
    @Column(name = "ZTZQEXCUTING_STATUS")
    private String ztzqexcutingStatus;

    /**
     * 最后修改时间
     */
    @Column(name = "UPDATE_TIME")
    private Date updateTime;

    /**
     * 预处理状态:0=待处理，1=复核通过，整个预处理完成;2=经办完成;3=复核拒绝
     */
    @Column(name = "PRE_STATE", nullable = false)
    private String preState;

}
